<?php

use Illuminate\Http\Request;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::get('/user', function (Request $request) {
    return $request->user();
})->middleware('auth:api');


/*
【api_token 永久生效】

1、用户注册 register 时返回数据接口 token。
因为登录就没有意义了，所以不要登录了。
（1）如果 token 丢失了，比如存放在文件里把文件删了、存放在数据库里误删了，需要提供重新获取 token 的接口 getToken。
此时需要邮箱（用户名）和密码。再次请求，参数还是这两个。
（2）还需要提供刷新 token 的接口 refresh，虽然没有意义。
此时需要旧 token。再次请求，参数还是这个。
（3）删除 token 的接口 remove，表示第三方应用不再使用 api 了。
此时需要旧 token。再次请求，报错。

2、用户注册 register 时不生成 token。
（1）需要提供获取 token 的接口 getToken。
此时需要邮箱（用户名）和密码。再次请求，参数还是这两个。
（2）还需要提供刷新 token 的接口 refresh，虽然没有意义。
此时需要旧 token。再次请求，参数还是这个。
（3）删除 token 的接口 remove，表示第三方应用不再使用 api 了。
此时需要旧 token。再次请求，报错。

3、用户注册 register 时生成不能用于数据接口的 token，仅用于获取可以用于数据接口的 token。
（1）需要提供获取 token 的接口 getToken。
此时需要不能用于数据接口的 token。再次请求，参数只能是旧的数据接口 token 了，那么是刷新 token 还是怎么处理呢？
因为 token 永久有效，显然不合理。所以 3 的情况就不要了。
（2）还需要提供刷新 token 的接口 refresh，虽然没有意义。
此时需要旧 token。再次请求，参数还是这个。
（3）删除 token 的接口 remove，表示第三方应用不再使用 api 了。
此时需要旧 token。再次请求，报错。


【api_token 非永久生效】

1、是注册和登录两个接口？哪个接口生成用于数据接口的 api_token？
2、还是只要一个注册接口（没得选择）？这个简单，就不用多分析了。

注册和登录两个接口的情况下，注册时要不要生成 api_token？
1、生成。
这个 api_token，可以：
（1）可以直接用于数据接口。
（2）只能用于登录，登录后生成的 api_token 才能用于数据接口。
2、不生成。
那么就必须登录才能生成 api_token。
【
1-1 比较简单。此时登录接口就没有意义了。

为了让登录接口有意义，那么就要求只有登录接口生成的 api_token 才能用于数据接口。
那么：登录时是否需要之前的 api_token？
注册时生成了用于 api_token。
     下次登录：使用之前尝试的 api_token。
     一直如此。
注册时没有生成 api_token，那么登录就没有 api_token。
     下次登录：是否需要 api_token？
         需要：但注册时没有生成 api_token，就无法登录。
             判断 api_token 是否为空，是则第一次登录（不要求 api_token），否则之前登录过（要求 api_token）。
】
 */

// 用户注册
Route::post('/register', 'Api\TokenController@dluoRegister');
// 用户登录
Route::post('/login', 'Api\TokenController@dluoLogin');
// 用户退出
Route::post('/logout', 'Api\TokenController@dluoLogout');
// 用户刷新 token
Route::post('/refresh', 'Api\TokenController@dluoRefresh');


Route::get('/test001', function (Request $request) {
    return response()->json([
    	'errcode' => 0,
    	'message' => 'OK'
    ]);
})->middleware('auth:api');

